/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.





Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

 

#ifndef MonitorModel_h
#define MonitorModel_h

@interface WidgetRawResource :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// RegionId
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// ResourceId
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// Tag
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tag;


-(id) initWithName:(NSString*) name
    regionId:(NSString*)regionId
    resourceId:(NSString*)resourceId
    tag:(NSMutableDictionary<NSString*,NSString*>*)tag;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MetricCm :NSObject

/// AggrPeriod
@property (strong,nonatomic,nonnull)  NSString*  aggrPeriod;

/// AggrType
@property (strong,nonatomic,nonnull)  NSString*  aggrType;

/// CalculateUnit
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// DownSampleType
@property (strong,nonatomic,nonnull)  NSString*  downSampleType;

/// Metric
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// MetricName
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// MetricUID
@property (strong,nonatomic,nonnull)  NSString*  metricUID;

/// Tags
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;


-(id) initWithAggrPeriod:(NSString*) aggrPeriod
    aggrType:(NSString*)aggrType
    calculateUnit:(NSString*)calculateUnit
    downSampleType:(NSString*)downSampleType
    metric:(NSString*)metric
    metricName:(NSString*)metricName
    metricUID:(NSString*)metricUID
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MonitorFilter :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// Values
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  values;


-(id) initWithName:(NSString*) name
    values:(NSArray<NSString*>*)values;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateTemplateResponseEnd :NSObject

/// 是否更新成功
@property (strong,nonatomic,nonnull)  NSNumber*  success;

/// 更新后的模板id
@property (strong,nonatomic,nonnull)  NSNumber*  templateId;


-(id) initWithSuccess:(NSNumber*) success
    templateId:(NSNumber*)templateId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TemplateOption :NSObject

/// 模板Id
@property (strong,nonatomic,nonnull)  NSString*  templateId;

/// 模板类型.1-默认模板  2-自定义模板
@property (strong,nonatomic,nonnull)  NSNumber*  templateType;


-(id) initWithTemplateId:(NSString*) templateId
    templateType:(NSNumber*)templateType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RuleCounting :NSObject

/// 处于报警状态的规则个数  status:2
@property (strong,nonatomic,nonnull)  NSNumber*  alarmRuleCount;

/// 未启用的规则 数量
@property (strong,nonatomic,nonnull)  NSNumber*  disableRuleCount;

/// 处于正常状态的规则个数  status：1
@property (strong,nonatomic,nonnull)  NSNumber*  normalRuleCount;

/// 产品标识
@property (strong,nonatomic,nonnull)  NSString*  product;

/// 监控规则 总数
@property (strong,nonatomic,nonnull)  NSNumber*  totalRuleCount;

/// 处于数据不足状态的规则 个数  status:4
@property (strong,nonatomic,nonnull)  NSNumber*  unknownRuleCount;


-(id) initWithAlarmRuleCount:(NSNumber*) alarmRuleCount
    disableRuleCount:(NSNumber*)disableRuleCount
    normalRuleCount:(NSNumber*)normalRuleCount
    product:(NSString*)product
    totalRuleCount:(NSNumber*)totalRuleCount
    unknownRuleCount:(NSNumber*)unknownRuleCount;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface NoticeLevel :NSObject

/// 是否为用户自己定义的级别，自定义(true) or 固定(false)
@property (strong,nonatomic,nonnull)  NSNumber*  custom;

/// 报警级别以及对应的阈值，是一个map[string]float64对象。key:common(一般)、critical(严重)、 fatal(紧急),value:各报警级别对应的阀值，要符合operation参数对应的递进关系。 eg: &quot;levels&quot;:{&quot;common&quot;:1000,&quot;critical&quot;:10000,&quot;fatal&quot;:15000}
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSNumber*>*  levels;


-(id) initWithCustom:(NSNumber*) custom
    levels:(NSMutableDictionary<NSString*,NSNumber*>*)levels;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CmAlarmHistory :NSObject

/// 统计方法：平均值&#x3D;avg、最大值&#x3D;max、最小值&#x3D;min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// ContactGroups
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  contactGroups;

/// ContactPersons
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  contactPersons;

/// 该规则是否已经被删除，1表示已经被删除，0表示未删除，被删除的规则，在使用查询规则的接口时，将不会被检索到
@property (strong,nonatomic,nonnull)  NSNumber*  deleted;

/// 启用禁用 1启用，0禁用
@property (strong,nonatomic,nonnull)  NSNumber*  enabled;

/// 规则id
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// 监控项
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 规则id监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// 命名空间
@property (strong,nonatomic,nonnull)  NSString*  namespace;

/// 命名空间id
@property (strong,nonatomic,nonnull)  NSString*  namespaceUID;

/// 通知周期 单位：小时
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// NoticeTime
@property (strong,nonatomic,nonnull)  NSString*  noticeTime;

/// 对象
@property (strong,nonatomic,nonnull)  NSString*  obj;

/// 对象id
@property (strong,nonatomic,nonnull)  NSString*  objUID;

/// &gt;&#x3D;、&gt;、&lt;、&lt;&#x3D;、&#x3D;、！&#x3D;
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 统计周期（单位：分钟）
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 地域信息
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 此规则所应用的资源id
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// root rule id
@property (strong,nonatomic,nonnull)  NSNumber*  rootRuleId;

/// rule id
@property (strong,nonatomic,nonnull)  NSNumber*  ruleId;

/// 规则名称
@property (strong,nonatomic,nonnull)  NSString*  ruleName;

/// 报警规则对应的产品
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 监控项附属信息
@property (strong,nonatomic,nonnull)  NSString*  tag;

/// 阈值
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续多少次后报警
@property (strong,nonatomic,nonnull)  NSNumber*  times;

/// 报警值
@property (strong,nonatomic,nonnull)  NSNumber*  value;


-(id) initWithCalculation:(NSString*) calculation
    contactGroups:(NSArray<NSString*>*)contactGroups
    contactPersons:(NSArray<NSString*>*)contactPersons
    deleted:(NSNumber*)deleted
    enabled:(NSNumber*)enabled
    idValue:(NSString*)idValue
    metric:(NSString*)metric
    metricName:(NSString*)metricName
    namespace:(NSString*)namespace
    namespaceUID:(NSString*)namespaceUID
    noticePeriod:(NSNumber*)noticePeriod
    noticeTime:(NSString*)noticeTime
    obj:(NSString*)obj
    objUID:(NSString*)objUID
    operation:(NSString*)operation
    period:(NSNumber*)period
    region:(NSString*)region
    resourceId:(NSString*)resourceId
    rootRuleId:(NSNumber*)rootRuleId
    ruleId:(NSNumber*)ruleId
    ruleName:(NSString*)ruleName
    serviceCode:(NSString*)serviceCode
    tag:(NSString*)tag
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times
    value:(NSNumber*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ChartDimension :NSObject

/// 分组groupCode
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 分组名称
@property (strong,nonatomic,nonnull)  NSString*  dimensionName;

/// 分组下metric对应的tags
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;


-(id) initWithDimension:(NSString*) dimension
    dimensionName:(NSString*)dimensionName
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MetricInfo :NSObject

/// metric 单位
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// metric名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// metric uid
@property (strong,nonatomic,nonnull)  NSString*  metricUid;


-(id) initWithCalculateUnit:(NSString*) calculateUnit
    metricName:(NSString*)metricName
    metricUid:(NSString*)metricUid;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MetricDataList :NSObject

/// 错误数据
@property (strong,nonatomic,nonnull)  NSString*  errMetricData;

/// 错误数据描述
@property (strong,nonatomic,nonnull)  NSString*  errDetail;


-(id) initWithErrMetricData:(NSString*) errMetricData
    errDetail:(NSString*)errDetail;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RuleState :NSObject

/// 资源id
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// 规则个数
@property (strong,nonatomic,nonnull)  NSNumber*  ruleCount;

/// 资源的规则状态。1：正常、 2：报警、4：数据不足 -1:没有规则 -2:未启用
@property (strong,nonatomic,nonnull)  NSNumber*  state;


-(id) initWithResourceId:(NSString*) resourceId
    ruleCount:(NSNumber*)ruleCount
    state:(NSNumber*)state;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MonitorTagFilter :NSObject

/// Tag键
@property (strong,nonatomic,nonnull)  NSString*  key;

/// Tag值
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  values;


-(id) initWithKey:(NSString*) key
    values:(NSArray<NSString*>*)values;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end
@interface TagsOption :NSObject

/// 操作项(多个tagFilter之间关关系)默认是or
@property (strong,nonatomic,nonnull)  NSString*  operatorValue;

/// 资源标签,对所有符合该标签的资源设置报警规则，对于新加入该标签的资源自动生效
@property (strong,nonatomic,nonnull)  NSArray<MonitorTagFilter*>*  tags;


-(id) initWithOperator:(NSString*) operatorValue
    tags:(NSArray<MonitorTagFilter*>*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end
@interface ResourceItem :NSObject

/// 资源所属的region
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 资源id
@property (strong,nonatomic,nonnull)  NSString*  resourceId;


-(id) initWithRegion:(NSString*) region
    resourceId:(NSString*)resourceId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

@interface ResourceOption :NSObject

/// 指定具体资源ID设置报警规则，每次最多100个。优先resourceItems生效
@property (strong,nonatomic,nonnull)  NSArray<ResourceItem*>*  resourceItems;

/// TagsOption
@property (strong,nonatomic,nonnull)  TagsOption*  tagsOption;


-(id) initWithResourceItems:(NSArray<ResourceItem*>*) resourceItems
    tagsOption:(TagsOption*)tagsOption;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end


@interface UpdateWebHookOut :NSObject

/// Success
@property (strong,nonatomic,nonnull)  NSNumber*  success;


-(id) initWithSuccess:(NSNumber*) success;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DataPointX :NSObject

/// 监控指标名称，长度不超过255字节，只允许英文、数字、下划线_、点.,  [0-9][a-z] [A-Z] [. _ ]， 其它会返回err
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 数据维度，数据类型为map类型，最多五个标签，尽量不传或少传。总长度不大于255字节，只允许英文、数字、下划线_、点., [0-9][a-z] [A-Z] [. _ ]，  其它会返回err
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// 秒级时间戳，早于当前时间30天的不能写入；建议的上报时间戳：上报时间间隔的整数倍，如上报间隔为5s，则建议上报的时间戳为 timestamp &#x3D; current timestamp - (current timestamp % time interval) &#x3D; 1487647187 - （1487647187 % 5） &#x3D; 1487647187 -2 &#x3D; 1487647185
@property (strong,nonatomic,nonnull)  NSNumber*  timestamp;

/// 监控的值。number or string。最大值为long.MAX_VALUE&#x3D;9223372036854775807&#x3D;263-1。累计类型的指标，累计到最大值后需要翻转为0，重新开始计数。翻转后不影响速率的计算。
@property (strong,nonatomic,nonnull)  NSObject*  value;


-(id) initWithMetric:(NSString*) metric
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    timestamp:(NSNumber*)timestamp
    value:(NSObject*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ServiceMetricAggregateItem :NSObject

/// Aggregate
@property (strong,nonatomic,nonnull)  NSString*  aggregate;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;


-(id) initWithAggregate:(NSString*) aggregate
    name:(NSString*)name;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ChartDetail :NSObject

/// 监控图名称
@property (strong,nonatomic,nonnull)  NSString*  chartName;

/// 监控图单位
@property (strong,nonatomic,nonnull)  NSString*  chartUnit;

/// 监控图包含的指标
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  include;


-(id) initWithChartName:(NSString*) chartName
    chartUnit:(NSString*)chartUnit
    include:(NSArray<NSString*>*)include;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface WidgetTagResource :NSObject

/// Id
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// Key
@property (strong,nonatomic,nonnull)  NSString*  key;

/// RegionId
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// Value
@property (strong,nonatomic,nonnull)  NSString*  value;


-(id) initWithId:(NSString*) idValue
    key:(NSString*)key
    regionId:(NSString*)regionId
    value:(NSString*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface KeyValue :NSObject

/// key
@property (strong,nonatomic,nonnull)  NSString*  key;

/// value
@property (strong,nonatomic,nonnull)  NSString*  value;


-(id) initWithKey:(NSString*) key
    value:(NSString*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateTemplateResponseResultV2 :NSObject

/// 是否更新成功
@property (strong,nonatomic,nonnull)  NSNumber*  success;

/// 更新后的模板uuid
@property (strong,nonatomic,nonnull)  NSString*  templateUuid;


-(id) initWithSuccess:(NSNumber*) success
    templateUuid:(NSString*)templateUuid;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribedNoticeContacts :NSObject

/// 联系人ID
@property (strong,nonatomic,nonnull)  NSNumber*  referenceId;

/// 联系人类型。 0 - 联系人分组id， 1 - 联系人id
@property (strong,nonatomic,nonnull)  NSNumber*  referenceType;


-(id) initWithReferenceId:(NSNumber*) referenceId
    referenceType:(NSNumber*)referenceType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface LinkPolicyInfo :NSObject

/// 该模板关联策略的名字
@property (strong,nonatomic,nonnull)  NSString*  linkPolicyName;

/// 该模板关联策略的uuid
@property (strong,nonatomic,nonnull)  NSString*  linkPolicyUuid;


-(id) initWithLinkPolicyName:(NSString*) linkPolicyName
    linkPolicyUuid:(NSString*)linkPolicyUuid;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateDashboardSpec :NSObject

/// DashboardId
@property (strong,nonatomic,nonnull)  NSString*  dashboardId;

/// Focused
@property (strong,nonatomic,nonnull)  NSString*  focused;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;


-(id) initWithDashboardId:(NSString*) dashboardId
    focused:(NSString*)focused
    name:(NSString*)name;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DataPoint :NSObject

/// Timestamp
@property (strong,nonatomic,nonnull)  NSNumber*  timestamp;

/// Value
@property (strong,nonatomic,nonnull)  NSObject*  value;


-(id) initWithTimestamp:(NSNumber*) timestamp
    value:(NSObject*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Tag :NSObject

/// TagKey
@property (strong,nonatomic,nonnull)  NSString*  tagKey;

/// TagValue
@property (strong,nonatomic,nonnull)  NSString*  tagValue;


-(id) initWithTagKey:(NSString*) tagKey
    tagValue:(NSString*)tagValue;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Metric :NSObject

/// Aggregator
@property (strong,nonatomic,nonnull)  NSString*  aggregator;

/// CalculateUnit
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// MetricValue
@property (strong,nonatomic,nonnull)  NSString*  metricValue;

/// MetricName
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// Period
@property (strong,nonatomic,nonnull)  NSString*  period;


-(id) initWithAggregator:(NSString*) aggregator
    calculateUnit:(NSString*)calculateUnit
    metricValue:(NSString*)metricValue
    metricName:(NSString*)metricName
    period:(NSString*)period;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface NsInfo :NSObject

/// metric个数
@property (strong,nonatomic,nonnull)  NSNumber*  metricCount;

/// 命名空间名称
@property (strong,nonatomic,nonnull)  NSString*  nsName;

/// 命名空间uid
@property (strong,nonatomic,nonnull)  NSString*  nsUid;

/// obj个数
@property (strong,nonatomic,nonnull)  NSNumber*  objCount;


-(id) initWithMetricCount:(NSNumber*) metricCount
    nsName:(NSString*)nsName
    nsUid:(NSString*)nsUid
    objCount:(NSNumber*)objCount;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface WidgetMetric :NSObject

/// Aggregate
@property (strong,nonatomic,nonnull)  NSString*  aggregate;

/// Metric
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// MetricName
@property (strong,nonatomic,nonnull)  NSString*  metricName;


-(id) initWithAggregate:(NSString*) aggregate
    metric:(NSString*)metric
    metricName:(NSString*)metricName;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface WidgetPosition :NSObject

/// Col
@property (strong,nonatomic,nonnull)  NSNumber*  col;

/// CreatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;

/// Order
@property (strong,nonatomic,nonnull)  NSNumber*  order;

/// Row
@property (strong,nonatomic,nonnull)  NSNumber*  row;

/// SizeX
@property (strong,nonatomic,nonnull)  NSNumber*  sizeX;

/// SizeY
@property (strong,nonatomic,nonnull)  NSNumber*  sizeY;

/// UpdatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  updatedTime;


-(id) initWithCol:(NSNumber*) col
    createdTime:(NSNumber*)createdTime
    order:(NSNumber*)order
    row:(NSNumber*)row
    sizeX:(NSNumber*)sizeX
    sizeY:(NSNumber*)sizeY
    updatedTime:(NSNumber*)updatedTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeTopNSlowSqlSpec :NSObject

/// 查询时间范围的结束时间， UTC时间，格式：2016-12-11T00:00:00+0800（为空时，将由startTime与timeInterval计算得出）（注意在url中+要转译为%2B故url中为2016-12-11T00:00:00%2B0800）
   /// in: query
@property (strong,nonatomic,nonnull)  NSString*  endTime;

/// 资源的uuid
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// 资源的类型,sqlserver
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 查询时间范围的开始时间， UTC时间，格式：2016-12-11T00:00:00+0800（早于30d时，将被重置为30d）（注意在url中+要转译为%2B故url中为2016-12-11T00:00:00%2B0800）
   /// in: query
@property (strong,nonatomic,nonnull)  NSString*  startTime;

/// 时间间隔：1h，6h，12h，1d，3d，7d，14d，固定时间间隔，timeInterval 与 endTime 至少填一项
   /// in: query
@property (strong,nonatomic,nonnull)  NSString*  timeInterval;

/// topN数量
@property (strong,nonatomic,nonnull)  NSNumber*  topN;


-(id) initWithEndTime:(NSString*) endTime
    resourceId:(NSString*)resourceId
    serviceCode:(NSString*)serviceCode
    startTime:(NSString*)startTime
    timeInterval:(NSString*)timeInterval
    topN:(NSNumber*)topN;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BaseContact :NSObject

/// 联系人id。  注：ReferenceType&#x3D;2时，联系人id请填0
@property (strong,nonatomic,nonnull)  NSNumber*  referenceId;

/// 联系人id类型：0,联系人分组id;1,联系人id，2，pin帐号主联系人
@property (strong,nonatomic,nonnull)  NSNumber*  referenceType;


-(id) initWithReferenceId:(NSNumber*) referenceId
    referenceType:(NSNumber*)referenceType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RuleResourceInfo :NSObject

/// 维度
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 产品类型
@property (strong,nonatomic,nonnull)  NSString*  product;

/// Region
@property (strong,nonatomic,nonnull)  NSString*  region;

/// ResourceId
@property (strong,nonatomic,nonnull)  NSString*  resourceId;


-(id) initWithDimension:(NSString*) dimension
    product:(NSString*)product
    region:(NSString*)region
    resourceId:(NSString*)resourceId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeCMMetricsDataSpec :NSObject

/// AggrType
@property (strong,nonatomic,nonnull)  NSString*  aggrType;

/// 查询时间范围的结束时间， UTC时间，格式：2016-12-11T00:00:00+0800（为空时，将由startTime与timeInterval计算得出）（注意在url中+要转译为%2B故url中为2016-12-11T00:00:00%2B0800）
   /// in: query
@property (strong,nonatomic,nonnull)  NSString*  endTime;

/// metric id列表
   /// in: query
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  metricUID;

/// 查询时间范围的开始时间， UTC时间，格式：2016-12-11T00:00:00+0800（早于30d时，将被重置为30d）（注意在url中+要转译为%2B故url中为2016-12-11T00:00:00%2B0800）
   /// in: query
@property (strong,nonatomic,nonnull)  NSString*  startTime;

/// 时间间隔：1h，6h，12h，1d，3d，7d，14d，固定时间间隔，timeInterval 与 endTime 至少填一项
   /// in: query
@property (strong,nonatomic,nonnull)  NSString*  timeInterval;


-(id) initWithAggrType:(NSString*) aggrType
    endTime:(NSString*)endTime
    metricUID:(NSArray<NSString*>*)metricUID
    startTime:(NSString*)startTime
    timeInterval:(NSString*)timeInterval;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface WidgetSupportedProduct :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;


-(id) initWithName:(NSString*) name
    serviceCode:(NSString*)serviceCode;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Chart :NSObject

/// 监控图名称
@property (strong,nonatomic,nonnull)  NSString*  chartName;

/// 监控图单位
@property (strong,nonatomic,nonnull)  NSString*  chartUnit;

/// 监控图包含的指标
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  include;


-(id) initWithChartName:(NSString*) chartName
    chartUnit:(NSString*)chartUnit
    include:(NSArray<NSString*>*)include;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface LastDownsampleRespItem :NSObject

/// Metric
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// Tags
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// Value
@property (strong,nonatomic,nonnull)  NSObject*  value;


-(id) initWithMetric:(NSString*) metric
    name:(NSString*)name
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    value:(NSObject*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface WebHookOption :NSObject

/// 回调content 注：仅webHookUrl和webHookProtocol均不为空时，才会创建webHook
@property (strong,nonatomic,nonnull)  NSString*  webHookContent;

/// webHook协议
@property (strong,nonatomic,nonnull)  NSString*  webHookProtocol;

/// 回调secret，用户请求签名，防伪造
@property (strong,nonatomic,nonnull)  NSString*  webHookSecret;

/// 回调url
@property (strong,nonatomic,nonnull)  NSString*  webHookUrl;


-(id) initWithWebHookContent:(NSString*) webHookContent
    webHookProtocol:(NSString*)webHookProtocol
    webHookSecret:(NSString*)webHookSecret
    webHookUrl:(NSString*)webHookUrl;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface NoticeOption :NSObject

/// 生效截止时间，默认值:23:59
@property (strong,nonatomic,nonnull)  NSString*  effectiveIntervalEnd;

/// 生效起始时间，默认值:00:00
@property (strong,nonatomic,nonnull)  NSString*  effectiveIntervalStart;

/// 通知条件 1-告警 2-数据不足3-告警恢复
@property (strong,nonatomic,nonnull)  NSArray<NSNumber*>*  noticeCondition;

/// 通知沉默周期,单位:分钟，默认值：24小时,目前支持的取值“24小时、12小时、6小时、3小时、1小时、30分钟、15分钟、10分钟、5分钟”
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// 通知方法    1-短信 2-邮件
@property (strong,nonatomic,nonnull)  NSArray<NSNumber*>*  noticeWay;


-(id) initWithEffectiveIntervalEnd:(NSString*) effectiveIntervalEnd
    effectiveIntervalStart:(NSString*)effectiveIntervalStart
    noticeCondition:(NSArray<NSNumber*>*)noticeCondition
    noticePeriod:(NSNumber*)noticePeriod
    noticeWay:(NSArray<NSNumber*>*)noticeWay;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Location :NSObject

/// Sloc
@property (strong,nonatomic,nonnull)  NSString*  sloc;

/// SlocName
@property (strong,nonatomic,nonnull)  NSString*  slocName;


-(id) initWithSloc:(NSString*) sloc
    slocName:(NSString*)slocName;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DataTag :NSObject

/// Operation
@property (strong,nonatomic,nonnull)  NSNumber*  operation;

/// TagKey
@property (strong,nonatomic,nonnull)  NSString*  tagKey;

/// TagValue
@property (strong,nonatomic,nonnull)  NSString*  tagValue;


-(id) initWithOperation:(NSNumber*) operation
    tagKey:(NSString*)tagKey
    tagValue:(NSString*)tagValue;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateTemplateResponseEnd :NSObject

/// 是否创建成功
@property (strong,nonatomic,nonnull)  NSNumber*  success;

/// 创建成功的模板id
@property (strong,nonatomic,nonnull)  NSNumber*  templateId;


-(id) initWithSuccess:(NSNumber*) success
    templateId:(NSNumber*)templateId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Dimension :NSObject

/// 维度
@property (strong,nonatomic,nonnull)  NSString*  dimensionValue;

/// 维度名称
@property (strong,nonatomic,nonnull)  NSString*  dimensionName;

/// 是否是子结点
@property (strong,nonatomic,nonnull)  NSNumber*  isNode;

/// 对应标签服务的serviceCode
@property (strong,nonatomic,nonnull)  NSString*  tagServiceCode;

/// tags
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;


-(id) initWithDimensionValue:(NSString*) dimensionValue
    dimensionName:(NSString*)dimensionName
    isNode:(NSNumber*)isNode
    tagServiceCode:(NSString*)tagServiceCode
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface AddTagsSpec :NSObject

/// 应用码。调用此API前需找云监控提供
@property (strong,nonatomic,nonnull)  NSString*  appCode;

/// 组id。须确保在一个APP范围内全局唯一
@property (strong,nonatomic,nonnull)  NSString*  groupCode;

/// 资源列表。总资源不能超过100个
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  resourceIds;

/// 资源的产品线
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 打标签操作所属产品线的serviceCode
@property (strong,nonatomic,nonnull)  NSString*  srcServiceCode;

/// 标签名称。调用此API前需要与云监控确认可以使用的标签名称
@property (strong,nonatomic,nonnull)  NSString*  tagK;

/// 标签值
@property (strong,nonatomic,nonnull)  NSString*  tagV;


-(id) initWithAppCode:(NSString*) appCode
    groupCode:(NSString*)groupCode
    resourceIds:(NSArray<NSString*>*)resourceIds
    serviceCode:(NSString*)serviceCode
    srcServiceCode:(NSString*)srcServiceCode
    tagK:(NSString*)tagK
    tagV:(NSString*)tagV;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface HandleTags :NSObject

/// HandleTagCode
@property (strong,nonatomic,nonnull)  NSNumber*  handleTagCode;

/// PrefixMetric
@property (strong,nonatomic,nonnull)  NSString*  prefixMetric;


-(id) initWithHandleTagCode:(NSNumber*) handleTagCode
    prefixMetric:(NSString*)prefixMetric;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Resource :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// RegionId
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// ResourceId
@property (strong,nonatomic,nonnull)  NSString*  resourceId;


-(id) initWithName:(NSString*) name
    regionId:(NSString*)regionId
    resourceId:(NSString*)resourceId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface EnableAlarmsSpec :NSObject

/// 告警规则的ID列表
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  ids;


-(id) initWithIds:(NSArray<NSString*>*) ids;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface StatisticsProductMetric :NSObject

/// 聚合方式
@property (strong,nonatomic,nonnull)  NSString*  aggregate;

/// 单位
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// metric
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// metric名称
@property (strong,nonatomic,nonnull)  NSString*  metricShow;


-(id) initWithAggregate:(NSString*) aggregate
    calculateUnit:(NSString*)calculateUnit
    metric:(NSString*)metric
    metricShow:(NSString*)metricShow;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RuleMetricDetail :NSObject

/// 指标的计算单位，比如bit/s、%、k等
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 维度标识
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 监控项唯一标识，可根据DescribeMetricsForCreateAlarm接口查询各产品线可用的监控项（创建规则时使用Metric字段）。格式：metric:downsample
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// 产品标识
@property (strong,nonatomic,nonnull)  NSString*  product;

/// 产品线标识
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;


-(id) initWithCalculateUnit:(NSString*) calculateUnit
    dimension:(NSString*)dimension
    metric:(NSString*)metric
    metricName:(NSString*)metricName
    product:(NSString*)product
    serviceCode:(NSString*)serviceCode;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeleteTemplateResponseEnd :NSObject

/// 是否删除成功
@property (strong,nonatomic,nonnull)  NSNumber*  success;


-(id) initWithSuccess:(NSNumber*) success;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface NoticeReceiver :NSObject

/// Email
@property (strong,nonatomic,nonnull)  NSString*  email;

/// Mobile
@property (strong,nonatomic,nonnull)  NSString*  mobile;

/// PersonId
@property (strong,nonatomic,nonnull)  NSNumber*  personId;

/// Pin
@property (strong,nonatomic,nonnull)  NSString*  pin;

/// UserName
@property (strong,nonatomic,nonnull)  NSString*  userName;


-(id) initWithEmail:(NSString*) email
    mobile:(NSString*)mobile
    personId:(NSNumber*)personId
    pin:(NSString*)pin
    userName:(NSString*)userName;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MetricDetail :NSObject

/// 指标的计算单位，比如bit/s、%、k等
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 维度标识
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 取样频次
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 监控项英文标识
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// 产品线标识
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;


-(id) initWithCalculateUnit:(NSString*) calculateUnit
    dimension:(NSString*)dimension
    downSample:(NSString*)downSample
    metric:(NSString*)metric
    metricName:(NSString*)metricName
    serviceCode:(NSString*)serviceCode;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Dashboard :NSObject

/// CreatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;

/// DashboardId
@property (strong,nonatomic,nonnull)  NSString*  dashboardId;

/// Focused
@property (strong,nonatomic,nonnull)  NSString*  focused;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// Pin
@property (strong,nonatomic,nonnull)  NSString*  pin;

/// UpdatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  updatedTime;

/// WidgetCount
@property (strong,nonatomic,nonnull)  NSNumber*  widgetCount;


-(id) initWithCreatedTime:(NSNumber*) createdTime
    dashboardId:(NSString*)dashboardId
    focused:(NSString*)focused
    name:(NSString*)name
    pin:(NSString*)pin
    updatedTime:(NSNumber*)updatedTime
    widgetCount:(NSNumber*)widgetCount;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateDashboardSpec :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;


-(id) initWithName:(NSString*) name;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Err :NSObject

/// Code
@property (strong,nonatomic,nonnull)  NSNumber*  code;

/// Details
@property (strong,nonatomic,nonnull)  NSObject*  details;

/// Message
@property (strong,nonatomic,nonnull)  NSString*  message;

/// Status
@property (strong,nonatomic,nonnull)  NSString*  status;


-(id) initWithCode:(NSNumber*) code
    details:(NSObject*)details
    message:(NSString*)message
    status:(NSString*)status;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ObjInfo :NSObject

/// metric列表
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  metrics;

/// obj名称
@property (strong,nonatomic,nonnull)  NSString*  objName;

/// obj UID
@property (strong,nonatomic,nonnull)  NSString*  objUid;


-(id) initWithMetrics:(NSArray<NSString*>*) metrics
    objName:(NSString*)objName
    objUid:(NSString*)objUid;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MetricDataCm :NSObject

/// 命名空间 ，长度不超过255字节，只允许英文、数字、下划线_、点., [0-9][a-z] [A-Z] [. _ ]，  其它会返回err
@property (strong,nonatomic,nonnull)  NSString*  namespace;

/// 监控指标名称，长度不超过255字节，只允许英文、数字、下划线_、点.,  [0-9][a-z] [A-Z] [. _ ]， 其它会返回err
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 数据维度，数据类型为map类型，支持最少一个，最多6个标签，总长度不大于1024字节，只允许英文、数字、下划线_、点., [0-9][a-z] [A-Z] [. _ ]，  其它会返回err。eg:{&quot;host&quot;:&quot;127.0.0.1&quot;,&quot;region&quot;:&quot;cn-north-1&quot;,&quot;role&quot;:&quot;M&quot;}
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  dimensions;

/// 上报数据点的时间戳,只支持10位，秒级时间戳，不能写入过去30天的时间
@property (strong,nonatomic,nonnull)  NSNumber*  timestamp;

/// 数据上报类型，1为原始值
@property (strong,nonatomic,nonnull)  NSNumber*  type;

/// 指标值集合，数据类型必须为map类型，key为数据类型，value为数据值，当type&#x3D;1时，key只能为”value”，上报的是原始值，value内容为整型或浮点型数字，最大值为9223372036854775807
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  values;

/// 数据的单位，长度不超过64字节，只允许英文、数字、下划线_、点., [0-9][a-z] [A-Z] [. _ ]，  其它会返回err
@property (strong,nonatomic,nonnull)  NSString*  unit;


-(id) initWithNamespace:(NSString*) namespace
    metric:(NSString*)metric
    dimensions:(NSMutableDictionary<NSString*,NSString*>*)dimensions
    timestamp:(NSNumber*)timestamp
    type:(NSNumber*)type
    values:(NSMutableDictionary<NSString*,NSString*>*)values
    unit:(NSString*)unit;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SqlInfo :NSObject

/// 产品标识，目前统一用jcloud
@property (strong,nonatomic,nonnull)  NSString*  appCode;

/// 客户端IP地址
@property (strong,nonatomic,nonnull)  NSString*  client_net_address;

/// 库名
@property (strong,nonatomic,nonnull)  NSString*  database;

/// SQL已执行时间（单位s）
@property (strong,nonatomic,nonnull)  NSNumber*  execution_time;

/// 用户名
@property (strong,nonatomic,nonnull)  NSString*  loginname;

/// 监控项
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 资源所在的地域
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 资源的uuid
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// 资源的类型
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 会话ID
@property (strong,nonatomic,nonnull)  NSString*  session_id;

/// SQL详细文本
@property (strong,nonatomic,nonnull)  NSString*  sqlstr;

/// SQL开始执行的时间
@property (strong,nonatomic,nonnull)  NSString*  start_time;

/// SQL会话请求状态
@property (strong,nonatomic,nonnull)  NSString*  status;

/// 毫秒级时间戳
@property (strong,nonatomic,nonnull)  NSNumber*  time;

/// 上报的监控值
@property (strong,nonatomic,nonnull)  NSNumber*  value;


-(id) initWithAppCode:(NSString*) appCode
    client_net_address:(NSString*)client_net_address
    database:(NSString*)database
    execution_time:(NSNumber*)execution_time
    loginname:(NSString*)loginname
    metric:(NSString*)metric
    region:(NSString*)region
    resourceId:(NSString*)resourceId
    serviceCode:(NSString*)serviceCode
    session_id:(NSString*)session_id
    sqlstr:(NSString*)sqlstr
    start_time:(NSString*)start_time
    status:(NSString*)status
    time:(NSNumber*)time
    value:(NSNumber*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateWebHookSpec :NSObject

/// 是否启用, 1表示启用webHook，0表示禁用webHook，默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  active;

/// webHook content
@property (strong,nonatomic,nonnull)  NSString*  content;

/// webHook 协议,http或者https
@property (strong,nonatomic,nonnull)  NSString*  protocol;

/// webHook secret，用户请求签名，防伪造
@property (strong,nonatomic,nonnull)  NSString*  secret;

/// webHook url
@property (strong,nonatomic,nonnull)  NSString*  url;


-(id) initWithActive:(NSNumber*) active
    content:(NSString*)content
    protocol:(NSString*)protocol
    secret:(NSString*)secret
    url:(NSString*)url;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SqlDataPoint :NSObject

/// 目前统一用jcloud
@property (strong,nonatomic,nonnull)  NSString*  appCode;

/// 资源的类型，取值sqlserver
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 资源所在的地域
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 资源的uuid
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// 监控指标名称，长度不超过255字节，只允许英文、数字、下划线_、点.,  [0-9][a-z] [A-Z] [. _ ]， 其它会返回err
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 毫秒级时间戳，早于当前时间30天的不能写入；建议的上报时间戳：上报时间间隔的整数倍，如上报间隔为5ms，则建议上报的时间戳为 time &#x3D; current timestamp - (current timestamp % time interval) &#x3D; 1487647187007 - （1487647187007 % 5） &#x3D; 1487647187007 -2 &#x3D; 1487647187005
@property (strong,nonatomic,nonnull)  NSNumber*  time;

/// 上报的监控值，即慢sql语句已经执行的时间(单位s)
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// SQL开始执行的时间
@property (strong,nonatomic,nonnull)  NSString*  start_time;

/// SQL已执行时间(单位s)
@property (strong,nonatomic,nonnull)  NSNumber*  execution_time;

/// 会话ID
@property (strong,nonatomic,nonnull)  NSString*  session_id;

/// 数据库库名
@property (strong,nonatomic,nonnull)  NSString*  database;

/// 客户端IP地址
@property (strong,nonatomic,nonnull)  NSString*  client_net_address;

/// 用户名
@property (strong,nonatomic,nonnull)  NSString*  loginname;

/// SQL会话请求状态
@property (strong,nonatomic,nonnull)  NSString*  status;

/// SQL详细文本
@property (strong,nonatomic,nonnull)  NSString*  sqlstr;


-(id) initWithAppCode:(NSString*) appCode
    serviceCode:(NSString*)serviceCode
    region:(NSString*)region
    resourceId:(NSString*)resourceId
    metric:(NSString*)metric
    time:(NSNumber*)time
    value:(NSNumber*)value
    start_time:(NSString*)start_time
    execution_time:(NSNumber*)execution_time
    session_id:(NSString*)session_id
    database:(NSString*)database
    client_net_address:(NSString*)client_net_address
    loginname:(NSString*)loginname
    status:(NSString*)status
    sqlstr:(NSString*)sqlstr;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeTemplateByIDSpec :NSObject

/// 模板类型，区分默认模板和用户自定义模板：1表示默认模板，2表示用户自定义模板
   /// in: query
@property (strong,nonatomic,nonnull)  NSNumber*  templateType;


-(id) initWithTemplateType:(NSNumber*) templateType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateCmAlarmParam :NSObject

/// 统计方法，必须与定义的metric一致，可选值列表：avg,max,sum,min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// 报警规则通知的联系组，必须在控制台上已创建，例如&quot; [&#39;联系组1&#39;,&#39;联系组2&#39;]&quot;
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  contactGroups;

/// 报警规则通知的联系人，必须在控制台上已创建，例如 [“联系人1”,”联系人2”]
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  contactPersons;

/// 取样频次
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 根据产品线查询可用监控项列表 接口 返回的Metric字段
@property (strong,nonatomic,nonnull)  NSString*  metricUID;

/// 命名空间
@property (strong,nonatomic,nonnull)  NSString*  namespaceUID;

/// 通知周期 单位：小时
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// 报警规则对应实例列表，每次最多100个，例如&quot;[&#39;resourceId1&#39;,&#39;resourceId2&#39;]&quot;
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  objUIDs;

/// 报警比较符，只能为以下几种&lt;&#x3D;,&lt;,&gt;,&gt;&#x3D;,&#x3D;&#x3D;,!&#x3D;
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 查询指标的周期，单位为分钟,目前支持的取值：2，5，15，30，60
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 规则名称，最大长度42个字符，只允许中英文、数字、&#39;&#39;-&#39;&#39;和&quot;_&quot;
@property (strong,nonatomic,nonnull)  NSString*  ruleName;

/// 报警阈值，目前只开放数值类型功能
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续探测几次都满足阈值条件时报警，可选值:1,2,3,5
@property (strong,nonatomic,nonnull)  NSNumber*  times;


-(id) initWithCalculation:(NSString*) calculation
    contactGroups:(NSArray<NSString*>*)contactGroups
    contactPersons:(NSArray<NSString*>*)contactPersons
    downSample:(NSString*)downSample
    metricUID:(NSString*)metricUID
    namespaceUID:(NSString*)namespaceUID
    noticePeriod:(NSNumber*)noticePeriod
    objUIDs:(NSArray<NSString*>*)objUIDs
    operation:(NSString*)operation
    period:(NSNumber*)period
    ruleName:(NSString*)ruleName
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CmAlarm :NSObject

/// 统计方法：平均值&#x3D;avg、最大值&#x3D;max、最小值&#x3D;min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// ContactGroups
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  contactGroups;

/// ContactPersons
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  contactPersons;

/// CreateTime
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 启用禁用 1启用，0禁用
@property (strong,nonatomic,nonnull)  NSNumber*  enabled;

/// 规则id
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// 监控项
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 规则id监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// 命名空间
@property (strong,nonatomic,nonnull)  NSString*  namespace;

/// 命名空间id
@property (strong,nonatomic,nonnull)  NSString*  namespaceUID;

/// 通知周期 单位：小时
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// NoticeTime
@property (strong,nonatomic,nonnull)  NSString*  noticeTime;

/// 对象
@property (strong,nonatomic,nonnull)  NSString*  obj;

/// 对象id
@property (strong,nonatomic,nonnull)  NSString*  objUID;

/// &gt;&#x3D;、&gt;、&lt;、&lt;&#x3D;、&#x3D;、！&#x3D;
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 统计周期（单位：分钟）
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 地域信息
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 此规则所应用的资源id
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// root rule id
@property (strong,nonatomic,nonnull)  NSNumber*  rootRuleId;

/// rule id
@property (strong,nonatomic,nonnull)  NSNumber*  ruleId;

/// 规则名称
@property (strong,nonatomic,nonnull)  NSString*  ruleName;

/// 报警规则对应的产品
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 监控项状态:1正常，2告警，4数据不足
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 监控项附属信息
@property (strong,nonatomic,nonnull)  NSString*  tag;

/// 阈值
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续多少次后报警
@property (strong,nonatomic,nonnull)  NSNumber*  times;

/// 报警值
@property (strong,nonatomic,nonnull)  NSNumber*  value;


-(id) initWithCalculation:(NSString*) calculation
    contactGroups:(NSArray<NSString*>*)contactGroups
    contactPersons:(NSArray<NSString*>*)contactPersons
    createTime:(NSString*)createTime
    enabled:(NSNumber*)enabled
    idValue:(NSString*)idValue
    metric:(NSString*)metric
    metricName:(NSString*)metricName
    namespace:(NSString*)namespace
    namespaceUID:(NSString*)namespaceUID
    noticePeriod:(NSNumber*)noticePeriod
    noticeTime:(NSString*)noticeTime
    obj:(NSString*)obj
    objUID:(NSString*)objUID
    operation:(NSString*)operation
    period:(NSNumber*)period
    region:(NSString*)region
    resourceId:(NSString*)resourceId
    rootRuleId:(NSNumber*)rootRuleId
    ruleId:(NSNumber*)ruleId
    ruleName:(NSString*)ruleName
    serviceCode:(NSString*)serviceCode
    status:(NSNumber*)status
    tag:(NSString*)tag
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times
    value:(NSNumber*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateWebHookReq :NSObject

/// 是否启用, 1表示启用webHook，0表示禁用webHook，默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  active;

/// webHook content
@property (strong,nonatomic,nonnull)  NSString*  content;

/// webHook 协议,http或者https
@property (strong,nonatomic,nonnull)  NSString*  protocol;

/// webHook secret，用户请求签名，防伪造
@property (strong,nonatomic,nonnull)  NSString*  secret;

/// webHook url
@property (strong,nonatomic,nonnull)  NSString*  url;


-(id) initWithActive:(NSNumber*) active
    content:(NSString*)content
    protocol:(NSString*)protocol
    secret:(NSString*)secret
    url:(NSString*)url;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateCmAlarmSpec :NSObject

/// 统计方法：平均值&#x3D;avg、最大值&#x3D;max、最小值&#x3D;min、总和&#x3D;sum
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// 通知的联系组，如 [“联系组1”,”联系组2”]
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  contactGroups;

/// 通知的联系人，如 [“联系人1”,”联系人2”]
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  contactPersons;

/// 取样频次
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 根据产品线查询可用监控项列表 接口 返回的Metric字段
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 通知周期 单位：小时
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// &gt;&#x3D;、&gt;、&lt;、&lt;&#x3D;、&#x3D;、！&#x3D;
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 统计周期（单位：分钟）目前支持的取值：2，5，15，30，60
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 规则名称，最大长度42个字符，只允许中英文、数字、&#39;&#39;-&#39;&#39;和&quot;_&quot;
@property (strong,nonatomic,nonnull)  NSString*  ruleName;

/// 产品名称
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 阈值
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续多少次后报警，可选值:1,2,3,5
@property (strong,nonatomic,nonnull)  NSNumber*  times;


-(id) initWithCalculation:(NSString*) calculation
    contactGroups:(NSArray<NSString*>*)contactGroups
    contactPersons:(NSArray<NSString*>*)contactPersons
    downSample:(NSString*)downSample
    metric:(NSString*)metric
    noticePeriod:(NSNumber*)noticePeriod
    operation:(NSString*)operation
    period:(NSNumber*)period
    ruleName:(NSString*)ruleName
    serviceCode:(NSString*)serviceCode
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BatchUpdateWidgetError :NSObject

/// DashboardId
@property (strong,nonatomic,nonnull)  NSString*  dashboardId;

/// Error
@property (strong,nonatomic,nonnull)  NSString*  error;

/// WidgetId
@property (strong,nonatomic,nonnull)  NSString*  widgetId;


-(id) initWithDashboardId:(NSString*) dashboardId
    error:(NSString*)error
    widgetId:(NSString*)widgetId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeleteAlarmsSpec :NSObject

/// filter name为&#39;ids&#39;为要删除的告警id
   /// in: query
@property (strong,nonatomic,nonnull)  NSArray<MonitorFilter*>*  filters;


-(id) initWithFilters:(NSArray<MonitorFilter*>*) filters;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BasicRule :NSObject

/// 统计方法，必须与定义的metric一致，可选值列表：avg,sum,max,min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// 降采样函数
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 监控项唯一标识，可根据DescribeMetricsForCreateAlarm接口查询各产品线可用的监控项（创建规则时使用Metric字段）。格式：metric:downsample
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// NoticeLevel
@property (strong,nonatomic,nonnull)  NoticeLevel*  noticeLevel;

/// 报警比较符，只能为以下几种lte(&lt;&#x3D;),lt(&lt;),gt(&gt;),gte(&gt;&#x3D;),eq(&#x3D;&#x3D;),ne(!&#x3D;)
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 查询指标的周期，单位为分钟,目前支持的取值：1,2，5，10,15，30，60
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 报警阈值，目前只开放数值类型功能
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续探测几次都满足阈值条件时报警，可选值:1,2,3,5,10,15,30,60
@property (strong,nonatomic,nonnull)  NSNumber*  times;


-(id) initWithCalculation:(NSString*) calculation
    downSample:(NSString*)downSample
    metric:(NSString*)metric
    noticeLevel:(NoticeLevel*)noticeLevel
    operation:(NSString*)operation
    period:(NSNumber*)period
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

@interface BasicRuleDetail :NSObject

/// 指标的计算单位，比如bit/s、%、k等
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 统计方法，必须与定义的metric一致，可选值列表：avg,sum,max,min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// 降采样函数
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 监控项唯一标识，可根据DescribeMetricsForCreateAlarm接口查询各产品线可用的监控项（创建规则时使用Metric字段）。格式：metric:downsample
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// NoticeLevel
@property (strong,nonatomic,nonnull)  NoticeLevel*  noticeLevel;

/// 报警比较符，只能为以下几种lte(&lt;&#x3D;),lt(&lt;),gt(&gt;),gte(&gt;&#x3D;),eq(&#x3D;&#x3D;),ne(!&#x3D;)
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 查询指标的周期，单位为分钟,目前支持的取值：1,2，5，10,15，30，60
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 报警阈值，目前只开放数值类型功能
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续探测几次都满足阈值条件时报警，可选值:1,2,3,5,10,15,30,60
@property (strong,nonatomic,nonnull)  NSNumber*  times;


-(id) initWithCalculateUnit:(NSString*) calculateUnit
    calculation:(NSString*)calculation
    downSample:(NSString*)downSample
    metric:(NSString*)metric
    metricName:(NSString*)metricName
    noticeLevel:(NoticeLevel*)noticeLevel
    operation:(NSString*)operation
    period:(NSNumber*)period
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BaseRuleT :NSObject

/// 弹性伸缩组ID
@property (strong,nonatomic,nonnull)  NSString*  autoScalingPolicyId;

/// 监控项单位
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 统计方法，必须与定义的metric一致，可选值列表：avg,sum,max,min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// 降采样函数
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 监控项唯一标识，可根据DescribeMetricsForCreateAlarm接口查询各产品线可用的监控项（创建规则时使用Metric字段）。格式：metric:downsample
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控项ID
@property (strong,nonatomic,nonnull)  NSNumber*  metricId;

/// NoticeLevel
@property (strong,nonatomic,nonnull)  NoticeLevel*  noticeLevel;

/// 通知周期，单位：小时
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// 报警比较符，只能为以下几种lte(&lt;&#x3D;),lt(&lt;),gt(&gt;),gte(&gt;&#x3D;),eq(&#x3D;&#x3D;),ne(!&#x3D;)
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 查询指标的周期，单位为分钟,目前支持的取值：1, 2，5，10,15，30，60
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 规则类型, 1表示云监控，2表示弹性伸缩，3表示AG，4表示AutoHeal，5表示自定义监控，6表示hawkeye
@property (strong,nonatomic,nonnull)  NSNumber*  ruleType;

/// 多值标签
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// 报警阈值，目前只开放数值类型功能
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续探测几次都满足阈值条件时报警，可选值:1,2,3,5,10,15,30,60
@property (strong,nonatomic,nonnull)  NSNumber*  times;


-(id) initWithAutoScalingPolicyId:(NSString*) autoScalingPolicyId
    calculateUnit:(NSString*)calculateUnit
    calculation:(NSString*)calculation
    downSample:(NSString*)downSample
    metric:(NSString*)metric
    metricId:(NSNumber*)metricId
    noticeLevel:(NoticeLevel*)noticeLevel
    noticePeriod:(NSNumber*)noticePeriod
    operation:(NSString*)operation
    period:(NSNumber*)period
    ruleType:(NSNumber*)ruleType
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface PutBody :NSObject

/// 目前统一用jcloud
@property (strong,nonatomic,nonnull)  NSString*  appCode;

/// 资源的类型，取值vm,ip,database,storage,disk,cdn,redis,balance,nat_gw,db_ro,vpn,ddos等,新接入的产品要求与opentapi命名的产品线名称一致
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 地域信息，如 cn-north-1 等
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 资源的唯一表示，一般为uuid
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// 监控数据点
@property (strong,nonatomic,nonnull)  NSArray<DataPointX*>*  dataPoints;


-(id) initWithAppCode:(NSString*) appCode
    serviceCode:(NSString*)serviceCode
    region:(NSString*)region
    resourceId:(NSString*)resourceId
    dataPoints:(NSArray<DataPointX*>*)dataPoints;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ServiceMetricItem :NSObject

/// Aggregates
@property (strong,nonatomic,nonnull)  NSArray<ServiceMetricAggregateItem*>*  aggregates;

/// CalculateUnit
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// Metric
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;


-(id) initWithAggregates:(NSArray<ServiceMetricAggregateItem*>*) aggregates
    calculateUnit:(NSString*)calculateUnit
    metric:(NSString*)metric
    name:(NSString*)name
    serviceCode:(NSString*)serviceCode;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ServiceMetric :NSObject

/// Metric
@property (strong,nonatomic,nonnull)  NSArray<ServiceMetricItem*>*  metric;

/// ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;


-(id) initWithMetric:(NSArray<ServiceMetricItem*>*) metric
    serviceCode:(NSString*)serviceCode;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface GetWidgetMetricOut :NSObject

/// List
@property (strong,nonatomic,nonnull)  NSArray<ServiceMetric*>*  list;


-(id) initWithList:(NSArray<ServiceMetric*>*) list;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface GroupNode :NSObject

/// 分组子节点
@property (strong,nonatomic,nonnull)  NSArray<GroupNode*>*  childs;

/// 分组groupCode
@property (strong,nonatomic,nonnull)  NSString*  groupCode;

/// 分组父节点的groupCode
@property (strong,nonatomic,nonnull)  NSString*  parent;


-(id) initWithChilds:(NSArray<GroupNode*>*) childs
    groupCode:(NSString*)groupCode
    parent:(NSString*)parent;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface WidgetResources :NSObject

/// Raw
@property (strong,nonatomic,nonnull)  NSArray<WidgetRawResource*>*  raw;

/// Tag
@property (strong,nonatomic,nonnull)  NSArray<WidgetTagResource*>*  tag;


-(id) initWithRaw:(NSArray<WidgetRawResource*>*) raw
    tag:(NSArray<WidgetTagResource*>*)tag;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TemplateRulesVo :NSObject

/// 监控项单位
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 统计方法：平均值&#x3D;avg、最大值&#x3D;max、最小值&#x3D;min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// CreateTime
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 是否删除 1正常，0删除
@property (strong,nonatomic,nonnull)  NSNumber*  deleted;

/// downSample
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 触发条件ID
@property (strong,nonatomic,nonnull)  NSNumber*  idValue;

/// 监控项
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控项ID
@property (strong,nonatomic,nonnull)  NSNumber*  metricId;

/// 监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// NoticeLevel
@property (strong,nonatomic,nonnull)  NoticeLevel*  noticeLevel;

/// 通知周期
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// 报警比较符，只能为以下几种lte(&lt;&#x3D;),lt(&lt;),gt(&gt;),gte(&gt;&#x3D;),eq(&#x3D;&#x3D;),ne(!&#x3D;)
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 统计周期（单位：分钟）
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 规则类型
@property (strong,nonatomic,nonnull)  NSNumber*  ruleType;

/// 规则所属资源类型
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 监控项附属信息
@property (strong,nonatomic,nonnull)  NSString*  tag;

/// 多值标签
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// 阈值
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续多少次后报警
@property (strong,nonatomic,nonnull)  NSNumber*  times;

/// UpdateTime
@property (strong,nonatomic,nonnull)  NSString*  updateTime;

/// 触发条件UUID
@property (strong,nonatomic,nonnull)  NSString*  uuid;


-(id) initWithCalculateUnit:(NSString*) calculateUnit
    calculation:(NSString*)calculation
    createTime:(NSString*)createTime
    deleted:(NSNumber*)deleted
    downSample:(NSString*)downSample
    idValue:(NSNumber*)idValue
    metric:(NSString*)metric
    metricId:(NSNumber*)metricId
    metricName:(NSString*)metricName
    noticeLevel:(NoticeLevel*)noticeLevel
    noticePeriod:(NSNumber*)noticePeriod
    operation:(NSString*)operation
    period:(NSNumber*)period
    ruleType:(NSNumber*)ruleType
    serviceCode:(NSString*)serviceCode
    tag:(NSString*)tag
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times
    updateTime:(NSString*)updateTime
    uuid:(NSString*)uuid;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RuleDetail :NSObject

/// 计算单位
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 统计方法，必须与定义的metric一致，可选值列表：avg,sum,max,min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// 降采样函数
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 监控项唯一标识，可根据DescribeMetricsForCreateAlarm接口查询各产品线可用的监控项（创建规则时使用Metric字段）。格式：metric:downsample
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// NoticeLevel
@property (strong,nonatomic,nonnull)  NoticeLevel*  noticeLevel;

/// 报警比较符，只能为以下几种lte(&lt;&#x3D;),lt(&lt;),gt(&gt;),gte(&gt;&#x3D;),eq(&#x3D;&#x3D;),ne(!&#x3D;)
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 查询指标的周期，单位为分钟,目前支持的取值：1,2，5，10,15，30，60
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 报警阈值，目前只开放数值类型功能
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续探测几次都满足阈值条件时报警，可选值:1,2,3,5,10,15,30,60
@property (strong,nonatomic,nonnull)  NSNumber*  times;


-(id) initWithCalculateUnit:(NSString*) calculateUnit
    calculation:(NSString*)calculation
    downSample:(NSString*)downSample
    metric:(NSString*)metric
    metricName:(NSString*)metricName
    noticeLevel:(NoticeLevel*)noticeLevel
    operation:(NSString*)operation
    period:(NSNumber*)period
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface GroupTree :NSObject

/// 分组groupCodes
@property (strong,nonatomic,nonnull)  NSArray<GroupNode*>*  childs;

/// serviceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;


-(id) initWithChilds:(NSArray<GroupNode*>*) childs
    serviceCode:(NSString*)serviceCode;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MetricData :NSObject

/// Data
@property (strong,nonatomic,nonnull)  NSArray<DataPoint*>*  data;

/// Metric
@property (strong,nonatomic,nonnull)  Metric*  metric;

/// Tags
@property (strong,nonatomic,nonnull)  NSArray<Tag*>*  tags;


-(id) initWithData:(NSArray<DataPoint*>*) data
    metric:(Metric*)metric
    tags:(NSArray<Tag*>*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Widget :NSObject

/// Aggregated
@property (strong,nonatomic,nonnull)  NSString*  aggregated;

/// CreatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;

/// DashboardId
@property (strong,nonatomic,nonnull)  NSString*  dashboardId;

/// Metrics
@property (strong,nonatomic,nonnull)  NSArray<WidgetMetric*>*  metrics;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// Position
@property (strong,nonatomic,nonnull)  WidgetPosition*  position;

/// Resources
@property (strong,nonatomic,nonnull)  WidgetResources*  resources;

/// ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// TopN
@property (strong,nonatomic,nonnull)  NSNumber*  topN;

/// Type
@property (strong,nonatomic,nonnull)  NSString*  type;

/// UpdatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  updatedTime;

/// WidgetId
@property (strong,nonatomic,nonnull)  NSString*  widgetId;


-(id) initWithAggregated:(NSString*) aggregated
    createdTime:(NSNumber*)createdTime
    dashboardId:(NSString*)dashboardId
    metrics:(NSArray<WidgetMetric*>*)metrics
    name:(NSString*)name
    position:(WidgetPosition*)position
    resources:(WidgetResources*)resources
    serviceCode:(NSString*)serviceCode
    topN:(NSNumber*)topN
    type:(NSString*)type
    updatedTime:(NSNumber*)updatedTime
    widgetId:(NSString*)widgetId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface AlarmVo :NSObject

/// 监控项单位
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 统计方法：平均值&#x3D;avg、最大值&#x3D;max、最小值&#x3D;min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// 联系人列表
@property (strong,nonatomic,nonnull)  NSArray<BaseContact*>*  contacts;

/// CreateTime
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 是否删除 1正常，0删除
@property (strong,nonatomic,nonnull)  NSNumber*  deleted;

/// downSample
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 规则ID
@property (strong,nonatomic,nonnull)  NSNumber*  idValue;

/// 监控项
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控项ID
@property (strong,nonatomic,nonnull)  NSNumber*  metricId;

/// 监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// NoticeLevel
@property (strong,nonatomic,nonnull)  NoticeLevel*  noticeLevel;

/// 通知周期
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// 报警比较符，只能为以下几种lte(&lt;&#x3D;),lt(&lt;),gt(&gt;),gte(&gt;&#x3D;),eq(&#x3D;&#x3D;),ne(!&#x3D;)
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 统计周期（单位：分钟）
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 规则类型
@property (strong,nonatomic,nonnull)  NSNumber*  ruleType;

/// 规则所属资源类型
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 监控项附属信息
@property (strong,nonatomic,nonnull)  NSString*  tag;

/// 多值标签
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// 阈值
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续多少次后报警
@property (strong,nonatomic,nonnull)  NSNumber*  times;

/// UpdateTime
@property (strong,nonatomic,nonnull)  NSString*  updateTime;


-(id) initWithCalculateUnit:(NSString*) calculateUnit
    calculation:(NSString*)calculation
    contacts:(NSArray<BaseContact*>*)contacts
    createTime:(NSString*)createTime
    deleted:(NSNumber*)deleted
    downSample:(NSString*)downSample
    idValue:(NSNumber*)idValue
    metric:(NSString*)metric
    metricId:(NSNumber*)metricId
    metricName:(NSString*)metricName
    noticeLevel:(NoticeLevel*)noticeLevel
    noticePeriod:(NSNumber*)noticePeriod
    operation:(NSString*)operation
    period:(NSNumber*)period
    ruleType:(NSNumber*)ruleType
    serviceCode:(NSString*)serviceCode
    tag:(NSString*)tag
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times
    updateTime:(NSString*)updateTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface GetWidgetDataPointsSpec :NSObject

/// Aggregated
@property (strong,nonatomic,nonnull)  NSString*  aggregated;

/// CreatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;

/// DashboardId
@property (strong,nonatomic,nonnull)  NSString*  dashboardId;

/// EndTime
@property (strong,nonatomic,nonnull)  NSString*  endTime;

/// name为widgetId - 多个图表的id
@property (strong,nonatomic,nonnull)  NSArray<MonitorFilter*>*  filters;

/// Metrics
@property (strong,nonatomic,nonnull)  NSArray<WidgetMetric*>*  metrics;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// Position
@property (strong,nonatomic,nonnull)  WidgetPosition*  position;

/// Resources
@property (strong,nonatomic,nonnull)  WidgetResources*  resources;

/// ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// StartTime
@property (strong,nonatomic,nonnull)  NSString*  startTime;

/// TopN
@property (strong,nonatomic,nonnull)  NSNumber*  topN;

/// Type
@property (strong,nonatomic,nonnull)  NSString*  type;

/// UpdatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  updatedTime;

/// WidgetId
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  widgetId;


-(id) initWithAggregated:(NSString*) aggregated
    createdTime:(NSNumber*)createdTime
    dashboardId:(NSString*)dashboardId
    endTime:(NSString*)endTime
    filters:(NSArray<MonitorFilter*>*)filters
    metrics:(NSArray<WidgetMetric*>*)metrics
    name:(NSString*)name
    position:(WidgetPosition*)position
    resources:(WidgetResources*)resources
    serviceCode:(NSString*)serviceCode
    startTime:(NSString*)startTime
    topN:(NSNumber*)topN
    type:(NSString*)type
    updatedTime:(NSNumber*)updatedTime
    widgetId:(NSArray<NSString*>*)widgetId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateWidgetSpec :NSObject

/// Aggregated
@property (strong,nonatomic,nonnull)  NSString*  aggregated;

/// CreatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;

/// DashboardId
@property (strong,nonatomic,nonnull)  NSString*  dashboardId;

/// Metrics
@property (strong,nonatomic,nonnull)  NSArray<WidgetMetric*>*  metrics;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// Position
@property (strong,nonatomic,nonnull)  WidgetPosition*  position;

/// Resources
@property (strong,nonatomic,nonnull)  WidgetResources*  resources;

/// ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// TopN
@property (strong,nonatomic,nonnull)  NSNumber*  topN;

/// Type
@property (strong,nonatomic,nonnull)  NSString*  type;

/// UpdatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  updatedTime;

/// WidgetId
@property (strong,nonatomic,nonnull)  NSString*  widgetId;


-(id) initWithAggregated:(NSString*) aggregated
    createdTime:(NSNumber*)createdTime
    dashboardId:(NSString*)dashboardId
    metrics:(NSArray<WidgetMetric*>*)metrics
    name:(NSString*)name
    position:(WidgetPosition*)position
    resources:(WidgetResources*)resources
    serviceCode:(NSString*)serviceCode
    topN:(NSNumber*)topN
    type:(NSString*)type
    updatedTime:(NSNumber*)updatedTime
    widgetId:(NSString*)widgetId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateTemplateRequestV2 :NSObject

/// 幂等性校验参数,最长36位
@property (strong,nonatomic,nonnull)  NSString*  clientToken;

/// 模板描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 模板资源类型下的维度，如果该资源分维度,则必须传入此参数
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 模板的资源类型
@property (strong,nonatomic,nonnull)  NSString*  product;

/// 模板名称,长度1-32个字符，只允许中英文、数字、&#39;&#39;-&#39;&#39;和&quot;_&quot;
@property (strong,nonatomic,nonnull)  NSString*  templateName;

/// 模板内包含的规则
@property (strong,nonatomic,nonnull)  NSArray<BasicRule*>*  templateRules;


-(id) initWithClientToken:(NSString*) clientToken
    descriptionValue:(NSString*)descriptionValue
    dimension:(NSString*)dimension
    product:(NSString*)product
    templateName:(NSString*)templateName
    templateRules:(NSArray<BasicRule*>*)templateRules;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TemplateVo :NSObject

/// CreateTime
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 模板描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 用户
@property (strong,nonatomic,nonnull)  NSString*  pin;

/// 模板内包含的规则数量
@property (strong,nonatomic,nonnull)  NSNumber*  rulesCount;

/// 模板所属资源类型
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 模板id
@property (strong,nonatomic,nonnull)  NSNumber*  templateId;

/// 模板名称
@property (strong,nonatomic,nonnull)  NSString*  templateName;

/// 模板内包含的规则
@property (strong,nonatomic,nonnull)  NSArray<AlarmVo*>*  templateRules;

/// 模板内包含的提供给前端的拼接好的规则
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  templateRulesString;

/// 模板类型，区分默认模板和用户自定义模板：1表示默认模板，2表示用户自定义模板
@property (strong,nonatomic,nonnull)  NSNumber*  templateType;

/// UpdateTime
@property (strong,nonatomic,nonnull)  NSString*  updateTime;


-(id) initWithCreateTime:(NSString*) createTime
    descriptionValue:(NSString*)descriptionValue
    pin:(NSString*)pin
    rulesCount:(NSNumber*)rulesCount
    serviceCode:(NSString*)serviceCode
    templateId:(NSNumber*)templateId
    templateName:(NSString*)templateName
    templateRules:(NSArray<AlarmVo*>*)templateRules
    templateRulesString:(NSArray<NSString*>*)templateRulesString
    templateType:(NSNumber*)templateType
    updateTime:(NSString*)updateTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribedAlarm :NSObject

/// 计算单位
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 统计方法：平均值&#x3D;avg、最大值&#x3D;max、最小值&#x3D;min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// 创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 降采样方法
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 是否启用
@property (strong,nonatomic,nonnull)  NSNumber*  enabled;

/// 报警规则ID
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// 监控项
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// NoticeLevel
@property (strong,nonatomic,nonnull)  NoticeLevel*  noticeLevel;

/// 告警周期
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// gt, gte, lt, lte, eq, ne
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 统计周期（单位：分钟）
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 地域信息
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 资源id
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// 规则名称
@property (strong,nonatomic,nonnull)  NSString*  ruleName;

/// 产品线编码
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 监控项状态：1正常，2告警，4数据不足
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 标签
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// 告警阈值
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 告警次数
@property (strong,nonatomic,nonnull)  NSNumber*  times;

/// 回调content
@property (strong,nonatomic,nonnull)  NSString*  webHookContent;

/// webHook协议
@property (strong,nonatomic,nonnull)  NSString*  webHookProtocol;

/// 回调secret，用户请求签名，防伪造
@property (strong,nonatomic,nonnull)  NSString*  webHookSecret;

/// 回调url
@property (strong,nonatomic,nonnull)  NSString*  webHookUrl;


-(id) initWithCalculateUnit:(NSString*) calculateUnit
    calculation:(NSString*)calculation
    createTime:(NSString*)createTime
    downSample:(NSString*)downSample
    enabled:(NSNumber*)enabled
    idValue:(NSString*)idValue
    metric:(NSString*)metric
    metricName:(NSString*)metricName
    noticeLevel:(NoticeLevel*)noticeLevel
    noticePeriod:(NSNumber*)noticePeriod
    operation:(NSString*)operation
    period:(NSNumber*)period
    region:(NSString*)region
    resourceId:(NSString*)resourceId
    ruleName:(NSString*)ruleName
    serviceCode:(NSString*)serviceCode
    status:(NSNumber*)status
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times
    webHookContent:(NSString*)webHookContent
    webHookProtocol:(NSString*)webHookProtocol
    webHookSecret:(NSString*)webHookSecret
    webHookUrl:(NSString*)webHookUrl;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RuleOption :NSObject

/// 规则触发条件,与模块参数同时指定时，优先使用rules
@property (strong,nonatomic,nonnull)  NSArray<BasicRule*>*  rules;

/// TemplateOption
@property (strong,nonatomic,nonnull)  TemplateOption*  templateOption;


-(id) initWithRules:(NSArray<BasicRule*>*) rules
    templateOption:(TemplateOption*)templateOption;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface GroupInfo :NSObject

/// 监控图的展示方式
@property (strong,nonatomic,nonnull)  NSArray<Chart*>*  charts;

/// 分组groupCode
@property (strong,nonatomic,nonnull)  NSString*  groupCode;

/// 分组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 分组下metric对应的tags
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// 分组的webCode
@property (strong,nonatomic,nonnull)  NSString*  webCode;


-(id) initWithCharts:(NSArray<Chart*>*) charts
    groupCode:(NSString*)groupCode
    groupName:(NSString*)groupName
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    webCode:(NSString*)webCode;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ServiceInfo :NSObject

/// GroupTree
@property (strong,nonatomic,nonnull)  GroupTree*  groupTree;

/// 产品线下的分组信息
@property (strong,nonatomic,nonnull)  NSArray<GroupInfo*>*  metricGroup;

/// 上报延迟
@property (strong,nonatomic,nonnull)  NSNumber*  metricsTimeDelay;

/// 产品线ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 产品线名称
@property (strong,nonatomic,nonnull)  NSString*  serviceName;

/// 上报的时间间隔
@property (strong,nonatomic,nonnull)  NSNumber*  timeInterval;


-(id) initWithGroupTree:(GroupTree*) groupTree
    metricGroup:(NSArray<GroupInfo*>*)metricGroup
    metricsTimeDelay:(NSNumber*)metricsTimeDelay
    serviceCode:(NSString*)serviceCode
    serviceName:(NSString*)serviceName
    timeInterval:(NSNumber*)timeInterval;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeTemplatesResponseEnd :NSObject

/// 总页数
@property (strong,nonatomic,nonnull)  NSNumber*  numberPages;

/// 总记录数
@property (strong,nonatomic,nonnull)  NSNumber*  numberRecords;

/// 当前页码
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;

/// 分页大小
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;

/// 当查询用户自定义模板时，表示该用户目前已有的自定义模板总数量;当查询默认模板时，表示该用户目前已有的默认模板总数量
@property (strong,nonatomic,nonnull)  NSNumber*  templateCount;

/// 模板列表
@property (strong,nonatomic,nonnull)  NSArray<TemplateVo*>*  templateList;


-(id) initWithNumberPages:(NSNumber*) numberPages
    numberRecords:(NSNumber*)numberRecords
    pageNumber:(NSNumber*)pageNumber
    pageSize:(NSNumber*)pageSize
    templateCount:(NSNumber*)templateCount
    templateList:(NSArray<TemplateVo*>*)templateList;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ServiceInfoV2 :NSObject

/// 产品线下的分组信息
@property (strong,nonatomic,nonnull)  NSArray<ChartDimension*>*  dimensions;

/// GroupTree
@property (strong,nonatomic,nonnull)  GroupTree*  groupTree;

/// 产品线ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 产品线名称
@property (strong,nonatomic,nonnull)  NSString*  serviceName;


-(id) initWithDimensions:(NSArray<ChartDimension*>*) dimensions
    groupTree:(GroupTree*)groupTree
    serviceCode:(NSString*)serviceCode
    serviceName:(NSString*)serviceName;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MaintainAuxiliaryTags :NSObject

/// 应用码。调用此API前需找云监控提供
@property (strong,nonatomic,nonnull)  NSString*  appCode;

/// 详细的过滤条件。
@property (strong,nonatomic,nonnull)  NSArray<DataTag*>*  filter;

/// 组id。须确保在一个APP范围内全局唯一
@property (strong,nonatomic,nonnull)  NSString*  groupCode;

/// 资源列表。
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  resourceIds;

/// 资源的产品线，要对哪个产品线的资源打标签
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 打标签操作所属产品线的serviceCode
@property (strong,nonatomic,nonnull)  NSString*  srcServiceCode;

/// Tags
@property (strong,nonatomic,nonnull)  HandleTags*  tags;


-(id) initWithAppCode:(NSString*) appCode
    filter:(NSArray<DataTag*>*)filter
    groupCode:(NSString*)groupCode
    resourceIds:(NSArray<NSString*>*)resourceIds
    serviceCode:(NSString*)serviceCode
    srcServiceCode:(NSString*)srcServiceCode
    tags:(HandleTags*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateAlarmSpec :NSObject

/// 告警通知联系人
@property (strong,nonatomic,nonnull)  NSArray<BaseContact*>*  baseContact;

/// 幂等性校验参数,最长36位,若两个请求clientToken相等，则返回第一次创建的规则id，只创建一次规则
@property (strong,nonatomic,nonnull)  NSString*  clientToken;

/// 资源维度，可用的维度请使用 describeProductsForAlarm接口查询
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 是否启用, 1表示启用规则，0表示禁用规则，默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  enabled;

/// 通知策略
@property (strong,nonatomic,nonnull)  NSArray<NoticeOption*>*  noticeOption;

/// 资源类型, 可用的资源类型列表请使用 describeProductsForAlarm接口查询。
@property (strong,nonatomic,nonnull)  NSString*  product;

/// ResourceOption
@property (strong,nonatomic,nonnull)  ResourceOption*  resourceOption;

/// 规则名称，规则名称，最大长度42个字符，只允许中英文、数字、&#39;&#39;-&#39;&#39;和&quot;_&quot;
@property (strong,nonatomic,nonnull)  NSString*  ruleName;

/// RuleOption
@property (strong,nonatomic,nonnull)  RuleOption*  ruleOption;

/// 规则类型, 默认为resourceMonitor
@property (strong,nonatomic,nonnull)  NSString*  ruleType;

/// 资源维度，指定监控数据实例的维度标签,如resourceId&#x3D;id。(请确认资源的监控数据带有该标签，否则规则会报数据不足)
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// WebHookOption
@property (strong,nonatomic,nonnull)  WebHookOption*  webHookOption;


-(id) initWithBaseContact:(NSArray<BaseContact*>*) baseContact
    clientToken:(NSString*)clientToken
    dimension:(NSString*)dimension
    enabled:(NSNumber*)enabled
    noticeOption:(NSArray<NoticeOption*>*)noticeOption
    product:(NSString*)product
    resourceOption:(ResourceOption*)resourceOption
    ruleName:(NSString*)ruleName
    ruleOption:(RuleOption*)ruleOption
    ruleType:(NSString*)ruleType
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    webHookOption:(WebHookOption*)webHookOption;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MetricDataItemCm :NSObject

/// Data
@property (strong,nonatomic,nonnull)  NSArray<DataPoint*>*  data;

/// Metric
@property (strong,nonatomic,nonnull)  MetricCm*  metric;


-(id) initWithData:(NSArray<DataPoint*>*) data
    metric:(MetricCm*)metric;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateWidgetSpec :NSObject

/// Aggregated
@property (strong,nonatomic,nonnull)  NSString*  aggregated;

/// CreatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;

/// DashboardId
@property (strong,nonatomic,nonnull)  NSString*  dashboardId;

/// Metrics
@property (strong,nonatomic,nonnull)  NSArray<WidgetMetric*>*  metrics;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// Position
@property (strong,nonatomic,nonnull)  WidgetPosition*  position;

/// Resources
@property (strong,nonatomic,nonnull)  WidgetResources*  resources;

/// ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// TopN
@property (strong,nonatomic,nonnull)  NSNumber*  topN;

/// Type
@property (strong,nonatomic,nonnull)  NSString*  type;

/// UpdatedTime
@property (strong,nonatomic,nonnull)  NSNumber*  updatedTime;

/// WidgetId
@property (strong,nonatomic,nonnull)  NSString*  widgetId;


-(id) initWithAggregated:(NSString*) aggregated
    createdTime:(NSNumber*)createdTime
    dashboardId:(NSString*)dashboardId
    metrics:(NSArray<WidgetMetric*>*)metrics
    name:(NSString*)name
    position:(WidgetPosition*)position
    resources:(WidgetResources*)resources
    serviceCode:(NSString*)serviceCode
    topN:(NSNumber*)topN
    type:(NSString*)type
    updatedTime:(NSNumber*)updatedTime
    widgetId:(NSString*)widgetId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribedAlarmHistory :NSObject

/// 报警规则ID
@property (strong,nonatomic,nonnull)  NSString*  alarmId;

/// 资源维度
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 资源维度名称
@property (strong,nonatomic,nonnull)  NSString*  dimensionName;

/// 告警持续次数
@property (strong,nonatomic,nonnull)  NSNumber*  durationTimes;

/// 告警持续时间，单位分钟
@property (strong,nonatomic,nonnull)  NSNumber*  noticeDurationTime;

/// 用于前端显示的‘触发告警级别’。从低到高分别为‘普通’, ‘紧急’, ‘严重’
@property (strong,nonatomic,nonnull)  NSString*  noticeLevel;

/// 触发的告警级别。从低到高分别为‘common’, ‘critical’, ‘fatal’
@property (strong,nonatomic,nonnull)  NSString*  noticeLevelTriggered;

/// 告警时间
@property (strong,nonatomic,nonnull)  NSString*  noticeTime;

/// 资源类型
@property (strong,nonatomic,nonnull)  NSString*  product;

/// 资源类型名称
@property (strong,nonatomic,nonnull)  NSString*  productName;

/// 告警通知人
@property (strong,nonatomic,nonnull)  NSArray<NoticeReceiver*>*  receivers;

/// 资源Id
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// Rule
@property (strong,nonatomic,nonnull)  BasicRuleDetail*  rule;

/// 规则类型
@property (strong,nonatomic,nonnull)  NSString*  ruleType;

/// 告警类型  1-告警恢复  2-告警 4-数据不足
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 资源tags
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// 告警值
@property (strong,nonatomic,nonnull)  NSNumber*  value;


-(id) initWithAlarmId:(NSString*) alarmId
    dimension:(NSString*)dimension
    dimensionName:(NSString*)dimensionName
    durationTimes:(NSNumber*)durationTimes
    noticeDurationTime:(NSNumber*)noticeDurationTime
    noticeLevel:(NSString*)noticeLevel
    noticeLevelTriggered:(NSString*)noticeLevelTriggered
    noticeTime:(NSString*)noticeTime
    product:(NSString*)product
    productName:(NSString*)productName
    receivers:(NSArray<NoticeReceiver*>*)receivers
    resourceId:(NSString*)resourceId
    rule:(BasicRuleDetail*)rule
    ruleType:(NSString*)ruleType
    status:(NSNumber*)status
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    value:(NSNumber*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeMetricDataSpec :NSObject

/// 聚合方式，可选值参考:sum、avg、min、max
@property (strong,nonatomic,nonnull)  NSString*  aggrType;

/// 资源的维度。当serviceCode下存在多个维度时，查询数据必须指定相应的维度
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 采样方式，可选值参考：sum、avg、last、min、max
@property (strong,nonatomic,nonnull)  NSString*  downSampleType;

/// 查询时间范围的结束时间， UTC时间，格式：2016-12-11T00:00:00+0800（为空时，将由startTime与timeInterval计算得出）（注意在url中+要转译为%2B故url中为2016-12-11T00:00:00%2B0800）
   /// in: query
@property (strong,nonatomic,nonnull)  NSString*  endTime;

/// 是否对查询的tags分组
   /// in: query
@property (strong,nonatomic,nonnull)  NSNumber*  groupBy;

/// 是否求速率
   /// in: query
@property (strong,nonatomic,nonnull)  NSNumber*  rate;

/// 资源的uuid
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// 资源的类型，取值vm, lb, ip, database 等,&lt;a href&#x3D;&quot;https://docs.jdcloud.com/cn/monitoring/api/describeservices?content&#x3D;API&amp;SOP&#x3D;JDCloud&quot;&gt;describeServices&lt;/a&gt;：查询己接入云监控的产品线列表，当产品线下有多个分组时，查询分组对应的监控项，serviceCode请传对应分组的groupCode字段值
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 查询时间范围的开始时间， UTC时间，格式：2016-12-11T00:00:00+0800（注意在url中+要转译为%2B故url中为2016-12-11T00:00:00%2B0800）
   /// in: query
@property (strong,nonatomic,nonnull)  NSString*  startTime;

/// 监控指标数据的维度信息,根据tags来筛选指标数据不同的维度
   /// in: query
@property (strong,nonatomic,nonnull)  NSArray<MonitorTagFilter*>*  tags;

/// 时间间隔：1h，6h，12h，1d，3d，7d，14d，固定时间间隔，timeInterval默认为1h，当前时间往 前1h
   /// in: query
@property (strong,nonatomic,nonnull)  NSString*  timeInterval;


-(id) initWithAggrType:(NSString*) aggrType
    dimension:(NSString*)dimension
    downSampleType:(NSString*)downSampleType
    endTime:(NSString*)endTime
    groupBy:(NSNumber*)groupBy
    rate:(NSNumber*)rate
    resourceId:(NSString*)resourceId
    serviceCode:(NSString*)serviceCode
    startTime:(NSString*)startTime
    tags:(NSArray<MonitorTagFilter*>*)tags
    timeInterval:(NSString*)timeInterval;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BaseRule :NSObject

/// 弹性伸缩组ID
@property (strong,nonatomic,nonnull)  NSString*  autoScalingPolicyId;

/// 单位
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 统计方法，必须与定义的metric一致，可选值列表：avg,sum,max,min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// 降采样函数
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 监控项唯一标识，可根据DescribeMetricsForCreateAlarm接口查询各产品线可用的监控项（创建规则时使用Metric字段）。格式：metric:downsample
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// NoticeLevel
@property (strong,nonatomic,nonnull)  NoticeLevel*  noticeLevel;

/// 通知周期，单位：小时
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// 报警比较符，只能为以下几种lte(&lt;&#x3D;),lt(&lt;),gt(&gt;),gte(&gt;&#x3D;),eq(&#x3D;&#x3D;),ne(!&#x3D;)
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 查询指标的周期，单位为分钟,目前支持的取值：1,2，5，10,15，30，60
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 规则名称，规则名称，最大长度42个字符，只允许中英文、数字、&#39;&#39;-&#39;&#39;和&quot;_&quot;
@property (strong,nonatomic,nonnull)  NSString*  ruleName;

/// 规则类型, 1云监控的规则， 6站点监控。默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  ruleType;

/// 多值标签
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// 报警阈值，目前只开放数值类型功能
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续探测几次都满足阈值条件时报警，可选值:1,2,3,5,10,15,30,60
@property (strong,nonatomic,nonnull)  NSNumber*  times;


-(id) initWithAutoScalingPolicyId:(NSString*) autoScalingPolicyId
    calculateUnit:(NSString*)calculateUnit
    calculation:(NSString*)calculation
    downSample:(NSString*)downSample
    metric:(NSString*)metric
    noticeLevel:(NoticeLevel*)noticeLevel
    noticePeriod:(NSNumber*)noticePeriod
    operation:(NSString*)operation
    period:(NSNumber*)period
    ruleName:(NSString*)ruleName
    ruleType:(NSNumber*)ruleType
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateCmAlarmSpec :NSObject

/// 幂等性校验参数,最长36位
@property (strong,nonatomic,nonnull)  NSString*  clientToken;

/// CreateCmAlarmSpecValue
@property (strong,nonatomic,nonnull)  CreateCmAlarmParam*  createCmAlarmSpecValue;


-(id) initWithClientToken:(NSString*) clientToken
    createCmAlarmSpecValue:(CreateCmAlarmParam*)createCmAlarmSpecValue;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateTemplateSpec :NSObject

/// 幂等性校验参数,最长36位
@property (strong,nonatomic,nonnull)  NSString*  clientToken;

/// 模板描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 规则的资源类型
@property (strong,nonatomic,nonnull)  NSString*  ruleServiceCode;

/// 模板的资源类型
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 模板名称,长度1-32个字符，只允许中英文、数字、&#39;&#39;-&#39;&#39;和&quot;_&quot;
@property (strong,nonatomic,nonnull)  NSString*  templateName;

/// 模板内包含的规则
@property (strong,nonatomic,nonnull)  NSArray<BaseRuleT*>*  templateRules;


-(id) initWithClientToken:(NSString*) clientToken
    descriptionValue:(NSString*)descriptionValue
    ruleServiceCode:(NSString*)ruleServiceCode
    serviceCode:(NSString*)serviceCode
    templateName:(NSString*)templateName
    templateRules:(NSArray<BaseRuleT*>*)templateRules;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface StatsItem :NSObject

/// 聚合方式
@property (strong,nonatomic,nonnull)  NSString*  aggregateFunc;

/// 单位
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 数据点
@property (strong,nonatomic,nonnull)  NSArray<DataPoint*>*  dps;

/// metric
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// metric名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// tags
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;


-(id) initWithAggregateFunc:(NSString*) aggregateFunc
    calculateUnit:(NSString*)calculateUnit
    dps:(NSArray<DataPoint*>*)dps
    metric:(NSString*)metric
    metricName:(NSString*)metricName
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface GroupAlarm :NSObject

/// 报警规则ID
@property (strong,nonatomic,nonnull)  NSString*  alarmId;

/// 告警通知联系人
@property (strong,nonatomic,nonnull)  NSArray<BaseContact*>*  baseContact;

/// 创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 是否启用, 1表示启用规则，0表示禁用规则，默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  enabled;

/// 通知策略
@property (strong,nonatomic,nonnull)  NSArray<NoticeOption*>*  noticeOption;

/// ResourceOption
@property (strong,nonatomic,nonnull)  ResourceOption*  resourceOption;

/// 规则名称，规则名称，最大长度42个字符，只允许中英文、数字、&#39;&#39;-&#39;&#39;和&quot;_&quot;
@property (strong,nonatomic,nonnull)  NSString*  ruleName;

/// RuleOption
@property (strong,nonatomic,nonnull)  RuleOption*  ruleOption;

/// 规则类型, 默认为resourceMonitor
@property (strong,nonatomic,nonnull)  NSString*  ruleType;

/// 规则版本  v1  v2
@property (strong,nonatomic,nonnull)  NSString*  ruleVersion;

/// 产品线标识，规则对应的serviceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 监控项状态：-1 未启用 1正常，2告警，4数据不足
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// WebHookOption
@property (strong,nonatomic,nonnull)  WebHookOption*  webHookOption;


-(id) initWithAlarmId:(NSString*) alarmId
    baseContact:(NSArray<BaseContact*>*)baseContact
    createTime:(NSString*)createTime
    enabled:(NSNumber*)enabled
    noticeOption:(NSArray<NoticeOption*>*)noticeOption
    resourceOption:(ResourceOption*)resourceOption
    ruleName:(NSString*)ruleName
    ruleOption:(RuleOption*)ruleOption
    ruleType:(NSString*)ruleType
    ruleVersion:(NSString*)ruleVersion
    serviceCode:(NSString*)serviceCode
    status:(NSNumber*)status
    webHookOption:(WebHookOption*)webHookOption;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateAlarmResourcesSpec :NSObject

/// 操作类型,默认为1，说明：1-覆盖  2-追加 3-删除
@property (strong,nonatomic,nonnull)  NSNumber*  operatorType;

/// ResourceOption
@property (strong,nonatomic,nonnull)  ResourceOption*  resourceOption;


-(id) initWithOperatorType:(NSNumber*) operatorType
    resourceOption:(ResourceOption*)resourceOption;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BatchUpdateWidgetSpec :NSObject

/// List
@property (strong,nonatomic,nonnull)  NSArray<Widget*>*  list;


-(id) initWithList:(NSArray<Widget*>*) list;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ChartDimensionDetail :NSObject

/// 监控图的展示方式
@property (strong,nonatomic,nonnull)  NSArray<ChartDetail*>*  charts;

/// 维度dimension
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 分组名称
@property (strong,nonatomic,nonnull)  NSString*  dimensionName;

/// 产品线
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 分组名称
@property (strong,nonatomic,nonnull)  NSString*  serviceName;

/// 分组下metric对应的tags
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;


-(id) initWithCharts:(NSArray<ChartDetail*>*) charts
    dimension:(NSString*)dimension
    dimensionName:(NSString*)dimensionName
    serviceCode:(NSString*)serviceCode
    serviceName:(NSString*)serviceName
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface WidgetDataPointItem :NSObject

/// Aggregate
@property (strong,nonatomic,nonnull)  NSArray<StatsItem*>*  aggregate;

/// Detail
@property (strong,nonatomic,nonnull)  NSArray<StatsItem*>*  detail;

/// WidgetId
@property (strong,nonatomic,nonnull)  NSString*  widgetId;


-(id) initWithAggregate:(NSArray<StatsItem*>*) aggregate
    detail:(NSArray<StatsItem*>*)detail
    widgetId:(NSString*)widgetId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ServiceCodeMetrics :NSObject

/// Metrics
@property (strong,nonatomic,nonnull)  NSArray<MetricDetail*>*  metrics;

/// ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;


-(id) initWithMetrics:(NSArray<MetricDetail*>*) metrics
    serviceCode:(NSString*)serviceCode;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TemplateRulesVoV2 :NSObject

/// 监控项单位
@property (strong,nonatomic,nonnull)  NSString*  calculateUnit;

/// 统计方法：平均值&#x3D;avg、最大值&#x3D;max、最小值&#x3D;min
@property (strong,nonatomic,nonnull)  NSString*  calculation;

/// CreateTime
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 是否删除 1正常，0删除
@property (strong,nonatomic,nonnull)  NSNumber*  deleted;

/// downSample
@property (strong,nonatomic,nonnull)  NSString*  downSample;

/// 触发条件ID
@property (strong,nonatomic,nonnull)  NSNumber*  idValue;

/// 监控项
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控项ID
@property (strong,nonatomic,nonnull)  NSNumber*  metricId;

/// 监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metricName;

/// NoticeLevel
@property (strong,nonatomic,nonnull)  NoticeLevel*  noticeLevel;

/// 通知周期
@property (strong,nonatomic,nonnull)  NSNumber*  noticePeriod;

/// 报警比较符，只能为以下几种lte(&lt;&#x3D;),lt(&lt;),gt(&gt;),gte(&gt;&#x3D;),eq(&#x3D;&#x3D;),ne(!&#x3D;)
@property (strong,nonatomic,nonnull)  NSString*  operation;

/// 统计周期（单位：分钟）
@property (strong,nonatomic,nonnull)  NSNumber*  period;

/// 规则类型
@property (strong,nonatomic,nonnull)  NSNumber*  ruleType;

/// 规则所属资源类型
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 监控项附属信息
@property (strong,nonatomic,nonnull)  NSString*  tag;

/// 多值标签
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// 阈值
@property (strong,nonatomic,nonnull)  NSNumber*  threshold;

/// 连续多少次后报警
@property (strong,nonatomic,nonnull)  NSNumber*  times;

/// UpdateTime
@property (strong,nonatomic,nonnull)  NSString*  updateTime;

/// 触发条件UUID
@property (strong,nonatomic,nonnull)  NSString*  uuid;


-(id) initWithCalculateUnit:(NSString*) calculateUnit
    calculation:(NSString*)calculation
    createTime:(NSString*)createTime
    deleted:(NSNumber*)deleted
    downSample:(NSString*)downSample
    idValue:(NSNumber*)idValue
    metric:(NSString*)metric
    metricId:(NSNumber*)metricId
    metricName:(NSString*)metricName
    noticeLevel:(NoticeLevel*)noticeLevel
    noticePeriod:(NSNumber*)noticePeriod
    operation:(NSString*)operation
    period:(NSNumber*)period
    ruleType:(NSNumber*)ruleType
    serviceCode:(NSString*)serviceCode
    tag:(NSString*)tag
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    threshold:(NSNumber*)threshold
    times:(NSNumber*)times
    updateTime:(NSString*)updateTime
    uuid:(NSString*)uuid;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateTemplateSpec :NSObject

/// 模板描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 规则的资源类型
@property (strong,nonatomic,nonnull)  NSString*  ruleServiceCode;

/// 模板的资源类型
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 模板ID
@property (strong,nonatomic,nonnull)  NSNumber*  templateId;

/// 模板名称
@property (strong,nonatomic,nonnull)  NSString*  templateName;

/// 模板内包含的规则
@property (strong,nonatomic,nonnull)  NSArray<BaseRuleT*>*  templateRules;


-(id) initWithDescription:(NSString*) descriptionValue
    ruleServiceCode:(NSString*)ruleServiceCode
    serviceCode:(NSString*)serviceCode
    templateId:(NSNumber*)templateId
    templateName:(NSString*)templateName
    templateRules:(NSArray<BaseRuleT*>*)templateRules;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Product :NSObject

/// 维度信息
@property (strong,nonatomic,nonnull)  NSArray<Dimension*>*  dimensions;

/// 产品标识
@property (strong,nonatomic,nonnull)  NSString*  productValue;

/// 产品名称
@property (strong,nonatomic,nonnull)  NSString*  productName;

/// product对应的产品线
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 对应的标签服务serviceCode
@property (strong,nonatomic,nonnull)  NSString*  tagServiceCode;

/// Tags
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;


-(id) initWithDimensions:(NSArray<Dimension*>*) dimensions
    productValue:(NSString*)productValue
    productName:(NSString*)productName
    serviceCode:(NSString*)serviceCode
    tagServiceCode:(NSString*)tagServiceCode
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

@interface RuleOptionDetail :NSObject

/// 规则触发条件,与模块参数同时指定时，优先使用rules
@property (strong,nonatomic,nonnull)  NSArray<BasicRuleDetail*>*  rules;

/// TemplateOption
@property (strong,nonatomic,nonnull)  TemplateOption*  templateOption;


-(id) initWithRules:(NSArray<BasicRuleDetail*>*) rules
    templateOption:(TemplateOption*)templateOption;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateTemplateRequestV2 :NSObject

/// 模板描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 模板资源类型下的维度，如果该资源分维度,则必须传入此参数
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 模板的资源类型
@property (strong,nonatomic,nonnull)  NSString*  product;

/// 模板名称
@property (strong,nonatomic,nonnull)  NSString*  templateName;

/// 模板内包含的规则
@property (strong,nonatomic,nonnull)  NSArray<BasicRule*>*  templateRules;

/// 模板UUID
@property (strong,nonatomic,nonnull)  NSString*  templateUuid;


-(id) initWithDescription:(NSString*) descriptionValue
    dimension:(NSString*)dimension
    product:(NSString*)product
    templateName:(NSString*)templateName
    templateRules:(NSArray<BasicRule*>*)templateRules
    templateUuid:(NSString*)templateUuid;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeGroupAlarm :NSObject

/// 报警规则ID
@property (strong,nonatomic,nonnull)  NSString*  alarmId;

/// 规则状态，当一个规则下同时存在报警、数据不足、正常的资源时，规则状态按 报警&gt;数据不足&gt;正常的优先级展示
   /// 监控项状态：-1 未启用 1正常，2告警，4数据不足
@property (strong,nonatomic,nonnull)  NSNumber*  alarmStatus;

/// 规则的状态列表,可能同时存在多个：1正常，2告警，4数据不足
@property (strong,nonatomic,nonnull)  NSArray<NSNumber*>*  alarmStatusList;

/// 创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 资源维度
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 资源维度名称
@property (strong,nonatomic,nonnull)  NSString*  dimensionName;

/// 是否启用, 1表示启用规则，0表示禁用规则，默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  enabled;

/// 资源类型
@property (strong,nonatomic,nonnull)  NSString*  product;

/// 资源类型名称
@property (strong,nonatomic,nonnull)  NSString*  productName;

/// ResourceOption
@property (strong,nonatomic,nonnull)  ResourceOption*  resourceOption;

/// 规则名称，规则名称，最大长度42个字符，只允许中英文、数字、&#39;&#39;-&#39;&#39;和&quot;_&quot;
@property (strong,nonatomic,nonnull)  NSString*  ruleName;

/// RuleOption
@property (strong,nonatomic,nonnull)  RuleOptionDetail*  ruleOption;

/// 规则类型, 默认为resourceMonitor
@property (strong,nonatomic,nonnull)  NSString*  ruleType;

/// 规则版本  v1  v2
@property (strong,nonatomic,nonnull)  NSString*  ruleVersion;

/// 资源维度，指定监控数据实例的维度标签,如resourceId&#x3D;id。(请确认资源的监控数据带有该标签，否则规则会报数据不足)
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;


-(id) initWithAlarmId:(NSString*) alarmId
    alarmStatus:(NSNumber*)alarmStatus
    alarmStatusList:(NSArray<NSNumber*>*)alarmStatusList
    createTime:(NSString*)createTime
    dimension:(NSString*)dimension
    dimensionName:(NSString*)dimensionName
    enabled:(NSNumber*)enabled
    product:(NSString*)product
    productName:(NSString*)productName
    resourceOption:(ResourceOption*)resourceOption
    ruleName:(NSString*)ruleName
    ruleOption:(RuleOptionDetail*)ruleOption
    ruleType:(NSString*)ruleType
    ruleVersion:(NSString*)ruleVersion
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TemplateVoV2 :NSObject

/// CreateTime
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 模板描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 模板所属资源的GroupCode
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// dimension的名字
@property (strong,nonatomic,nonnull)  NSString*  dimensionName;

/// 该模板关联策略的数量
@property (strong,nonatomic,nonnull)  NSNumber*  linkPolicyCount;

/// 该模板所关联的策略
@property (strong,nonatomic,nonnull)  NSArray<LinkPolicyInfo*>*  linkPolicyInfos;

/// 用户
@property (strong,nonatomic,nonnull)  NSString*  pin;

/// 模板所属资源类型
@property (strong,nonatomic,nonnull)  NSString*  product;

/// product的名字
@property (strong,nonatomic,nonnull)  NSString*  productName;

/// 模板内包含的规则数量
@property (strong,nonatomic,nonnull)  NSNumber*  rulesCount;

/// 模板所属ServiceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 模板id
@property (strong,nonatomic,nonnull)  NSNumber*  templateId;

/// 模板名称
@property (strong,nonatomic,nonnull)  NSString*  templateName;

/// 模板内包含的触发条件
@property (strong,nonatomic,nonnull)  NSArray<TemplateRulesVo*>*  templateRules;

/// 模板内包含的提供给前端的拼接好的触发条件
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  templateRulesString;

/// 模板类型，区分默认模板和用户自定义模板：1表示默认模板，2表示用户自定义模板
@property (strong,nonatomic,nonnull)  NSNumber*  templateType;

/// UpdateTime
@property (strong,nonatomic,nonnull)  NSString*  updateTime;

/// 模板uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;


-(id) initWithCreateTime:(NSString*) createTime
    descriptionValue:(NSString*)descriptionValue
    dimension:(NSString*)dimension
    dimensionName:(NSString*)dimensionName
    linkPolicyCount:(NSNumber*)linkPolicyCount
    linkPolicyInfos:(NSArray<LinkPolicyInfo*>*)linkPolicyInfos
    pin:(NSString*)pin
    product:(NSString*)product
    productName:(NSString*)productName
    rulesCount:(NSNumber*)rulesCount
    serviceCode:(NSString*)serviceCode
    templateId:(NSNumber*)templateId
    templateName:(NSString*)templateName
    templateRules:(NSArray<TemplateRulesVo*>*)templateRules
    templateRulesString:(NSArray<NSString*>*)templateRulesString
    templateType:(NSNumber*)templateType
    updateTime:(NSString*)updateTime
    uuid:(NSString*)uuid;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeTemplatesByTemplateIDResponseEnd :NSObject

/// Template
@property (strong,nonatomic,nonnull)  TemplateVo*  template;


-(id) initWithTemplate:(TemplateVo*) template;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateAlarmSpec :NSObject

/// 告警通知联系人
@property (strong,nonatomic,nonnull)  NSArray<BaseContact*>*  baseContact;

/// 资源维度，可用的维度请使用 describeProductsForAlarm接口查询
@property (strong,nonatomic,nonnull)  NSString*  dimension;

/// 是否启用, 1表示启用规则，0表示禁用规则，默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  enabled;

/// 通知策略
@property (strong,nonatomic,nonnull)  NSArray<NoticeOption*>*  noticeOption;

/// 资源类型, 可用的资源类型列表请使用 describeProductsForAlarm接口查询。
@property (strong,nonatomic,nonnull)  NSString*  product;

/// ResourceOption
@property (strong,nonatomic,nonnull)  ResourceOption*  resourceOption;

/// 规则名称，规则名称，最大长度42个字符，只允许中英文、数字、&#39;&#39;-&#39;&#39;和&quot;_&quot;
@property (strong,nonatomic,nonnull)  NSString*  ruleName;

/// RuleOption
@property (strong,nonatomic,nonnull)  RuleOption*  ruleOption;

/// 规则类型, 默认为resourceMonitor
@property (strong,nonatomic,nonnull)  NSString*  ruleType;

/// 资源维度，指定监控数据实例的维度标签,如resourceId&#x3D;id。(请确认资源的监控数据带有该标签，否则规则会报数据不足)
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// WebHookOption
@property (strong,nonatomic,nonnull)  WebHookOption*  webHookOption;


-(id) initWithBaseContact:(NSArray<BaseContact*>*) baseContact
    dimension:(NSString*)dimension
    enabled:(NSNumber*)enabled
    noticeOption:(NSArray<NoticeOption*>*)noticeOption
    product:(NSString*)product
    resourceOption:(ResourceOption*)resourceOption
    ruleName:(NSString*)ruleName
    ruleOption:(RuleOption*)ruleOption
    ruleType:(NSString*)ruleType
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    webHookOption:(WebHookOption*)webHookOption;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeAlarmHistoryResponseEnd :NSObject

/// 告警历史列表
@property (strong,nonatomic,nonnull)  NSArray<DescribedAlarmHistory*>*  alarmHistoryList;

/// 总数
@property (strong,nonatomic,nonnull)  NSNumber*  total;


-(id) initWithAlarmHistoryList:(NSArray<DescribedAlarmHistory*>*) alarmHistoryList
    total:(NSNumber*)total;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeMetricsForCreateAlarmEnd :NSObject

/// ServiceCodeList
@property (strong,nonatomic,nonnull)  NSArray<ServiceCodeMetrics*>*  serviceCodeList;


-(id) initWithServiceCodeList:(NSArray<ServiceCodeMetrics*>*) serviceCodeList;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

#endif /* MonitorModel_h */
